When one Internet Protocol (IP) host has a large amount of data to send to another host, the data is transmitted as a series of Internet Protocol (IP) datagrams. It is often preferable that these datagrams be of a largest size that does not require fragmentation anywhere along the path from the source to the destination. This datagram size is referred to as the Maximum Transmission unit (MTU) for the path and is sometimes referred to as the Path MTU or PMTU. The Path MTU is equal to the minimum of the MTUs of each hop in the path.
Fragmenting a packet involves dividing the packet into smaller packets and adding a header to each smaller packet. Since each fragment has the same header overhead as the original message, fragmenting packets adds to the total number of bytes that need to be transmitted in order to transmit the message. This can slow down transmission. It is therefore advantageous to discover Path MTU in order to avoid fragmenting packets.
A shortcoming of the prior art is the lack of an adequate mechanism for discovering the MTU of an arbitrary path between two hosts. Prior art techniques for Path MTU discovery are described e.g., in RFC 1191, “Path MTU Discovery”, by J. Mogul and S. Deering, which is available on the Internet at http://www.ietf.org/rfc/rfc1191.txt?number=1191, the contents of which are incorporated herein by reference. RFC 1191 describes a technique for Path MTU discovery by setting the “do not fragment” (DF) flag on packets sent by the host. If a router in the path has an MTU size smaller than the packet size, an Internet Control Message Protocol (ICMP) error is returned and the packet is dropped. Otherwise, the packet is received by the intended recipient, which verifies receipt of the packet. Unfortunately, administrative privilege is often required in order to be able to set the DF flag. In addition, not all routers are configured to provide the ICMP messages that are relied upon in this technique. In fact, most routers are not so configured.
Additional prior art path MTU discovery techniques are described by M. Mathis and J. Heffner in an internet draft titled “Packetization Layer Path MTU Discovery”, a copy of which is available on the internet at: <http://www.ietf.org:80/rfc/rfc4821.txt?number=4821>, the contents of which are incorporated herein by reference.
This RFC addresses issues with classic Path MTU discovery, which include “ICMP black holes” and ICMP blockage by firewalls. However, Packetization Layer Path MTU Discovery (PLPMTUD) technique still has a number of drawbacks. For example, PLPMTUD techniques must be able to set the do not fragment (DF) bit to 1 for packet loss detection. Unfortunately, the DF bit cannot be controlled from applications. In addition, PLPMTUD needs to be supported by both IP layer and the TCP/IP layer to work, and is not yet widely implemented.
It is within this context that embodiments of the present invention arise.